/***
 *  Platypus: Page Layout and Typesetting Software (free at platypus.pz.org)
 *
 *  Platypus is (c) Copyright 2006-10 Pacific Data Works LLC. All Rights Reserved.
 *  Licensed under Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0.html)
 */

package org.pz.platypus.parser;

/**
 *  Enums representing the various input tokens.
 *  Navigation note: error status codes are in Status.java
 *
 *  @author alb, modified by ask.
 */
public enum TokenType
{
    // tokens identifiers generated by the initial parser and their description.
    LINE( "Unknown Type"),
    TEXT( "Text" ),
    MACRO_TEXT( "Text in Variable" ),
    SYMBOL( "Symbol" ),
    COMMAND( "Command" ),
    COMPOUND_COMMAND( "Compound Command" ),
    COMPOUND_COMMAND_END( "Compound Command End" ),
    REPLACED_COMMAND( "Replaced Command (see previous command)" ),
    MACRO( "Macro" ),
    LINE_COMMENT( "Line Comment" ),
    BLOCK_COMMENT( "Block Comment" ),
    SCRIPT( "Script" ),
    EOF( "Unknown Type" ),

    // command family identifiers for compound commands
	COMMAND_FONT_FAMILY( "Unknown Type" ),
    ;

    private TokenType(String desc) {
        this.desc = desc;
    }

    @Override public String toString() {
        return desc;
    }

    private String desc;
}